﻿#define _CRT_SECURE_NO_WARNINGS 1

/*	小知识速记

	1\符号的优先级从高到低 / * %

	2\static修饰的函数是静态变量，静态变量的存储方式与全局变量一样，都是静态存储方式。
	它只会被赋值一次
	全局变量的作用域是整个源程序，当一个源程序由多个源文件组成时，全局变量在各个源文件中都是有效的。
	如果我们希望全局变量仅限于在本源文件中使用，在其他源文件中不能引用，
	也就是说限制其作用域只在定义该变量的源文件内有效，而在同一源程序的其他源文件中不能使用。
	这时，就可以通过在全局变量之前加上关键字 static 来实现（对其他源文件进行隐藏与隔离错误的作用）。

	3\对于结构体类型有
		1、结构体每个成员相对结构体首地址的偏移量(offset)是对齐参数的整 数倍，如有需要会在成员之间填充字节。
	编译器在为结构体成员开辟空间时，首先检查预开辟空间的地址相对于结构体首地址的偏移量是否为对齐参数的整数倍，
	若是，则存放该成员；若不是，则填充若干字节，以达到整数倍的要求;
		2、结构体变量所占空间的大小是对齐参数大小的整数倍。如有需要会在最后一个成员末尾填充若干字节使得所占空间大小是对齐参数大小的整数倍。

	4\define是宏定义，仅仅是直接替换
*/


//验证尼科彻斯定理，即：任何一个整数m（m<100）的立方都可以写成m个连续奇数之和。
#include <stdio.h>
#include <math.h>

int main() {
	int i = 0;
	int m = 0;
	int max = 0;
	int base = 0;
	//输入
	scanf("%d", &m);
	//
	max = pow(10, m);
	//创建一个存放max个奇数的数组
	int arr[5050] = { 1 };
	//创建每个正整数所对应的连续奇数的首数字
	for (i = 1; i < 5050; i++)
		arr[i] = arr[i - 1] + 2;
	//实现
	for (i = ((m - 1) * m) / 2; i < ((m - 1) * m) / 2 + m; i++)
	{
		printf("%d", arr[i]);
		if (i < ((m - 1) * m) / 2 + m - 1)
			printf("+");
	}
	putchar('\n');

	return 0;
}